/** \file
 \brief Full Lennard-Jones potential.
 */

#ifndef FASTMD_LJ_INCLUDED
#define FASTMD_LJ_INCLUDED 1

#include "core/potential.hpp"

namespace FastMD 
{
	
	class LJ : public Potential
	{
	public:
		explicit LJ( const Real eps, const Real sig ) throw();
		virtual ~LJ() throw();
		
		const Real sigma_sq;
		const Real _4epsilon;
		const Real _24epsilon;
		
		virtual Real operator()( V3D &f_ij, const V3D &r_ij ) const throw();
		virtual const char *name() const throw();
		
	private:
		YOCTO_DISABLE_COPY_AND_ASSIGN(LJ);
	};
	
}

#endif
